package io.nutz.nutzsite.common.caffeine;

import java.util.concurrent.TimeUnit;

import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Lang;

import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;

@IocBean
public class MyCache {
	
	private static Cache<String, Object> manualCache = Caffeine.newBuilder()
            .expireAfterWrite(120, TimeUnit.MINUTES)
            .maximumSize(300)
            .build();
	/**
	 * 根据key查询一个缓存，如果没有返回NULL
	 * @param key
	 * @return
	 */
	public static Object getCache(String key) {
		return manualCache.getIfPresent(key);
    }
	/**
	 * 使用 put 方法手动填充缓存，如果以前有值就覆盖以前的值
	 * @param key
	 * @param value
	 */
	public static void addCache(String key,Object value) {
		manualCache.put(key, value);
    }
	
	public static void updateCache(String key, Object value) {
		manualCache.put(key, value);
	}
	/**
	 * 删除一个缓存
	 * @param key
	 */
	public static void removeCache(String key) {
		manualCache.invalidate(key);

	}
}
